"""
魔法方法的介绍
    概述：
        魔法方法 在特定的场合下，会自动的被调用的函数，用来丰富类，对象的功能的
    格式：
        __方法名__()

    常用的魔法方法：
        __init__() 在常见对象的时候，自动调用，一般用于给对象的属性进行初始化
        __str__()  在打印 对象的引用的时候自动调用
        __repr__() 打印 对象 的应用的时候自动调用， 打印对象类型的列表时自动调用
        __del__() 当对象从内存中删除的时候调用这个函数
"""
class Student:
    # 定义init魔法方法，用来给对象的属性赋值，有参数
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f'Student(name={self.name}, age={self.age})'

    def study(self):
        print(f'我叫{self.name}，我在学习')

    def __del__(self):
        print(f'{self}对象被删除了........')

if __name__ == '__main__':
    s1 = Student('刘千琪',18)
    s2 = Student('任瑜阳',20)

    # 调用gc来回收对象
    # import gc
    # gc.collect()

    s1.study()
    s2.study()

    # 调用魔法方法自动删除
    del s1





